// 版权归 Epic Games, Inc. 所有，保留所有权利。

#pragma once

#include "CommonUserWidget.h"
#include "Performance/LyraPerformanceStatTypes.h"

#include "LyraPerfStatContainerBase.generated.h"

class UObject;
struct FFrame;

/**
 * ULyraPerfStatsContainerBase
 *
 * 包含一组 ULyraPerfStatWidgetBase 控件并基于用户设置管理其可见性的面板。
 */
UCLASS(Abstract)
class ULyraPerfStatContainerBase : public UCommonUserWidget
{
public:
	ULyraPerfStatContainerBase(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());

	GENERATED_BODY()

	//~UUserWidget 接口
	virtual void NativeConstruct() override; // 原生构造函数
	virtual void NativeDestruct() override; // 原生析构函数
	//~UUserWidget 接口结束

	UFUNCTION(BlueprintCallable)
	void UpdateVisibilityOfChildren(); // 更新子控件可见性

protected:
	// 我们是显示文本还是图表统计信息？
	UPROPERTY(EditAnywhere, Category=Display)
	ELyraStatDisplayMode StatDisplayModeFilter = ELyraStatDisplayMode::TextAndGraph; // 统计显示模式过滤器
};